# -*-coding:utf-8-*-
import numpy as np

"""
以下函数（在字符数组类numpy.char中定义）用于对dtype为numpy.string_或numpy.unicode_的数组执行向量化字符串操作
1.add()         返回两个str或Unicode数组的逐个字符串连接
2.multiply()    返回按元素多重连接后的字符串
3.center()      返回给定字符串的副本，其中元素位于特定字符串的中央
4.capitalize()  返回给定字符串的副本，其中只有第一个字符串大写
5.title()       返回字符串或Unicode的按元素标题转换版本
6.lower()       返回一个数组，其元素转换为小写
7.upper()       返回一个数组，其元素转换为大写
8.split()       返回字符串中的单词列表，并使用分隔符来分割
9.splitlines()  返回元素中的行列表，以换行符分割
10.strip()      返回数组副本，其中元素移除了开头或者结尾处的特定字符
11.join()       返回一个字符串，它是序列中字符串的连接
12.replace()    返回字符串的副本，其中所有子字符串的出现位置都被新字符串取代
13.decode()     按元素调用str.decode
14.encode()     按元素调用str.encode
"""
a = np.array(['abcd', 'dfgh', 'ijkl'], dtype=str)
b = np.array(['.txt'], dtype=str)
c = np.array('test', dtype=str)
# 字符串连接，参数Union[ndarray, Iterable, str]
np.char.add(a, b)  # ['abcd.txt' 'dfgh.txt' 'ijkl.txt']
np.char.add(c, '.jpg')  # 'test.jpg'
# 字符串多重连接
np.char.multiply(a, 2)  # ['abcdabcd' 'dfghdfgh' 'ijklijkl']
# 返回所需宽度的数组，以便输入字符串位于中心，并使用fillchar在左侧和右侧进行填充
np.char.center(a, 10, '*')  # ['***abcd***' '***dfgh***' '***ijkl***']
# 返回字符串的副本，其中第一个字母大写
np.char.capitalize(a)  # ['Abcd' 'Dfgh' 'Ijkl']
# 字符串中的每个单词首字母大写
np.char.title('hello world!')  # 'Hello World!'
# 字符串分割,sep为空时默认以空字符分割
np.char.split(['as  ff', 'ss\nrr'])  # [list(['as', 'ff']) list(['ss', 'rr'])]
# 字符串连接，第一个参数为连接字符
np.char.join('-', c)  # 't-e-s-t'
np.char.join('-', a)  # ['a-b-c-d' 'd-f-g-h' 'i-j-k-l']
# 字符串编码
np.char.encode(a, encoding='utf8')  # [b'abcd' b'dfgh' b'ijkl']

